/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/
const fp = require('lodash/fp')

const promsie = function (val, sum) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(sum + val)
    }, 10);
  })
}

const promsieA = fp.curry(promsie)('hello')
const promsieB = fp.curry(promsie)('lagou')
const promsieC = fp.curry(promsie)('I ♥ U')

promsieA('')
  .then(promsieB)
  .then(promsieC)
  .then((abc) => console.log(abc))